package com.ruoyi.common.pms.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.ruoyi.common.sms.entity.YytSmsCoupon;
import lombok.Data;

/**
 * <p>
 * sku信息
 * </p>
 *
 * @author huangshun
 * @since 2021-12-16
 */
@Data
public class YytPmsSkuInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * skuId
     */
    @TableId(value = "sku_id", type = IdType.ASSIGN_ID)
    private String skuId;

    /**
     * spuId
     */
    private String spuId;

    /**
     * sku名称
     */
    private String skuName;

    /**
     * sku介绍描述
     */
    private String skuDesc;

    /**
     * 商品类型  1：商品， 2：服务
     */
    private Integer skuType;

    /**
     * 服务类型  1：到店服务， 2：上门服务， 3：两者都有
     */
    private Integer skuServiceType;

    /**
     * 所属分类id
     */
    private String catalogId;

    /**
     * 品牌id
     */
    private String brandId;

    /**
     * 默认图片
     */
    private String skuDefaultImg;

    /**
     * 轮播图
     */
    private String skuSwiperImg;

    /**
     * 标题
     */
    private String skuTitle;

    /**
     * 副标题
     */
    private String skuSubtitle;

    /**
     * 销售价格
     */
    private BigDecimal price;

    /**
     * 销量
     */
    private String saleCount;

    /**
     * 店铺id
     */
    private String shopId;

    /**
     * 库存
     */
    private Integer inventory;

    /**
     * 划线价
     */
    private BigDecimal linePrice;

    /**
     * 平台抽成比例
     */
    private BigDecimal platformMoney;


    /**
     * 返利金额
     */
    private BigDecimal skuRebate;

    @TableField(exist = false)
    private String imgUrl;

    /**
     * 商品图片列表
     */
    @TableField(exist = false)
    private List<YytPmsSkuImages> skuImages;

    /**
     * spu详情
     */
    @TableField(exist = false)
    private YytPmsSpuInfo spuInfo;

    /**
     * spu描述信息
     */
    @TableField(exist = false)
    private YytPmsSpuInfoDesc spuInfoDesc;

    /**
     * spu图片地址列表
     */
    @TableField(exist = false)
    private List<String> spuImages = new ArrayList<>();

    /**
     * 店铺
     */
    @TableField(exist = false)
    private YytShop shop;

    /**
     * 销售属性
     */
    @TableField(exist = false)
    private YytPmsSkuSaleAttrValue saleAttrValue;

    /**
     * 其他同spu的销售属性规格列表
     * [{"key": "版本", "value": ["微信打印三合一", "激光打印三合一 无线"]}, {...}]
     */
    @TableField(exist = false)
    private List<Map<String, Object>> saleAttrValues = new ArrayList<>();

    /**
     * 规格参数列表
     */
    @TableField(exist = false)
    private List<Map<String, Object>> spuAttrValues = new ArrayList<>();

    /**
     * brand名称
     */
    @TableField(exist = false)
    private String brandName;

    /**
     * 购物车中购买的商品数量
     */
    @TableField(exist = false)
    private Integer quantity;

    /**
     * 可使用优惠券列表
     */
    @TableField(exist = false)
    private List<YytSmsCoupon> couponList;

    /**
     * 是否选择了当前优惠券
     */
    @TableField(exist = false)
    private Boolean isSelect;

    /**
     * 选择的优惠券id
     */
    @TableField(exist = false)
    private String couponId;

    /**
     * 选择的优惠券名称
     */
    @TableField(exist = false)
    private String couponName;

    /**
     * 折扣之后的价格
     */
    @TableField(exist = false)
    private String discountPrice;

    /**
     * 减扣类型
     */
    @TableField(exist = false)
    private String reduceType;

    /**
     * 减扣的价格或打折
     */
    @TableField(exist = false)
    private String reduceValue;


    /**
     * 是否处于活动中
     */
    @TableField(exist = false)
    private String isActivityStatus;


    /**
     * 活动id
     */
    @TableField(exist = false)
    private String actId;


}